home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / ntpath.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  9KB  |  369 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import os
  5. import stat
  6. import sys
  7. __all__ = [
  8.     'normcase',
  9.     'isabs',
  10.     'join',
  11.     'splitdrive',
  12.     'split',
  13.     'splitext',
  14.     'basename',
  15.     'dirname',
  16.     'commonprefix',
  17.     'getsize',
  18.     'getmtime',
  19.     'getatime',
  20.     'getctime',
  21.     'islink',
  22.     'exists',
  23.     'lexists',
  24.     'isdir',
  25.     'isfile',
  26.     'ismount',
  27.     'walk',
  28.     'expanduser',
  29.     'expandvars',
  30.     'normpath',
  31.     'abspath',
  32.     'splitunc',
  33.     'curdir',
  34.     'pardir',
  35.     'sep',
  36.     'pathsep',
  37.     'defpath',
  38.     'altsep',
  39.     'extsep',
  40.     'devnull',
  41.     'realpath',
  42.     'supports_unicode_filenames']
  43. curdir = '.'
  44. pardir = '..'
  45. extsep = '.'
  46. sep = '\\'
  47. pathsep = ';'
  48. altsep = '/'
  49. defpath = '.;C:\\bin'
  50. if 'ce' in sys.builtin_module_names:
  51.     defpath = '\\Windows'
  52. elif 'os2' in sys.builtin_module_names:
  53.     altsep = '/'
  54.  
  55. devnull = 'nul'
  56.  
  57. def normcase(s):
  58.     return s.replace('/', '\\').lower()
  59.  
  60.  
  61. def isabs(s):
  62.     s = splitdrive(s)[1]
  63.     if s != '':
  64.         pass
  65.     return s[:1] in '/\\'
  66.  
  67.  
  68. def join(a, *p):
  69.     path = a
  70.     for b in p:
  71.         b_wins = 0
  72.         if path == '':
  73.             b_wins = 1
  74.         elif isabs(b):
  75.             if path[1:2] != ':' or b[1:2] == ':':
  76.                 b_wins = 1
  77.             elif (len(path) > 3 or len(path) == 3) and path[-1] not in '/\\':
  78.                 b_wins = 1
  79.             
  80.         
  81.         None if b_wins else b[0] in '/\\'
  82.         None if path[-1] == ':' else b[0] in '/\\'
  83.         path += '\\'
  84.     
  85.     return path
  86.  
  87.  
  88. def splitdrive(p):
  89.     if p[1:2] == ':':
  90.         return (p[0:2], p[2:])
  91.     
  92.     return ('', p)
  93.  
  94.  
  95. def splitunc(p):
  96.     if p[1:2] == ':':
  97.         return ('', p)
  98.     
  99.     firstTwo = p[0:2]
  100.     if firstTwo == '//' or firstTwo == '\\\\':
  101.         normp = normcase(p)
  102.         index = normp.find('\\', 2)
  103.         if index == -1:
  104.             return ('', p)
  105.         
  106.         index = normp.find('\\', index + 1)
  107.         if index == -1:
  108.             index = len(p)
  109.         
  110.         return (p[:index], p[index:])
  111.     
  112.     return ('', p)
  113.  
  114.  
  115. def split(p):
  116.     (d, p) = splitdrive(p)
  117.     i = len(p)
  118.     while i and p[i - 1] not in '/\\':
  119.         i = i - 1
  120.     head = p[:i]
  121.     tail = p[i:]
  122.     head2 = head
  123.     while head2 and head2[-1] in '/\\':
  124.         head2 = head2[:-1]
  125.     if not head2:
  126.         pass
  127.     head = head
  128.     return (d + head, tail)
  129.  
  130.  
  131. def splitext(p):
  132.     i = p.rfind('.')
  133.     if i <= max(p.rfind('/'), p.rfind('\\')):
  134.         return (p, '')
  135.     else:
  136.         return (p[:i], p[i:])
  137.  
  138.  
  139. def basename(p):
  140.     return split(p)[1]
  141.  
  142.  
  143. def dirname(p):
  144.     return split(p)[0]
  145.  
  146.  
  147. def commonprefix(m):
  148.     if not m:
  149.         return ''
  150.     
  151.     s1 = min(m)
  152.     s2 = max(m)
  153.     n = min(len(s1), len(s2))
  154.     for i in xrange(n):
  155.         if s1[i] != s2[i]:
  156.             return s1[:i]
  157.             continue
  158.     
  159.     return s1[:n]
  160.  
  161.  
  162. def getsize(filename):
  163.     return os.stat(filename).st_size
  164.  
  165.  
  166. def getmtime(filename):
  167.     return os.stat(filename).st_mtime
  168.  
  169.  
  170. def getatime(filename):
  171.     return os.stat(filename).st_atime
  172.  
  173.  
  174. def getctime(filename):
  175.     return os.stat(filename).st_ctime
  176.  
  177.  
  178. def islink(path):
  179.     return False
  180.  
  181.  
  182. def exists(path):
  183.     
  184.     try:
  185.         st = os.stat(path)
  186.     except os.error:
  187.         return False
  188.  
  189.     return True
  190.  
  191. lexists = exists
  192.  
  193. def isdir(path):
  194.     
  195.     try:
  196.         st = os.stat(path)
  197.     except os.error:
  198.         return False
  199.  
  200.     return stat.S_ISDIR(st.st_mode)
  201.  
  202.  
  203. def isfile(path):
  204.     
  205.     try:
  206.         st = os.stat(path)
  207.     except os.error:
  208.         return False
  209.  
  210.     return stat.S_ISREG(st.st_mode)
  211.  
  212.  
  213. def ismount(path):
  214.     (unc, rest) = splitunc(path)
  215.     if unc:
  216.         return rest in ('', '/', '\\')
  217.     
  218.     p = splitdrive(path)[1]
  219.     if len(p) == 1:
  220.         pass
  221.     return p[0] in '/\\'
  222.  
  223.  
  224. def walk(top, func, arg):
  225.     
  226.     try:
  227.         names = os.listdir(top)
  228.     except os.error:
  229.         return None
  230.  
  231.     func(arg, top, names)
  232.     exceptions = ('.', '..')
  233.     for name in names:
  234.         if name not in exceptions:
  235.             name = join(top, name)
  236.             if isdir(name):
  237.                 walk(name, func, arg)
  238.             
  239.         isdir(name)
  240.     
  241.  
  242.  
  243. def expanduser(path):
  244.     if path[:1] != '~':
  245.         return path
  246.     
  247.     i = 1
  248.     n = len(path)
  249.     while i < n and path[i] not in '/\\':
  250.         i = i + 1
  251.     if i == 1:
  252.         if 'HOME' in os.environ:
  253.             userhome = os.environ['HOME']
  254.         elif 'HOMEPATH' not in os.environ:
  255.             return path
  256.         else:
  257.             
  258.             try:
  259.                 drive = os.environ['HOMEDRIVE']
  260.             except KeyError:
  261.                 drive = ''
  262.  
  263.             userhome = join(drive, os.environ['HOMEPATH'])
  264.     else:
  265.         return path
  266.     return userhome + path[i:]
  267.  
  268.  
  269. def expandvars(path):
  270.     if '$' not in path:
  271.         return path
  272.     
  273.     import string as string
  274.     varchars = string.ascii_letters + string.digits + '_-'
  275.     res = ''
  276.     index = 0
  277.     pathlen = len(path)
  278.     while index < pathlen:
  279.         c = path[index]
  280.         if c == "'":
  281.             path = path[index + 1:]
  282.             pathlen = len(path)
  283.             
  284.             try:
  285.                 index = path.index("'")
  286.                 res = res + "'" + path[:index + 1]
  287.             except ValueError:
  288.                 res = res + path
  289.                 index = pathlen - 1
  290.             except:
  291.                 None<EXCEPTION MATCH>ValueError
  292.             
  293.  
  294.         None<EXCEPTION MATCH>ValueError
  295.         if c == '$':
  296.             None if path[index + 1:index + 2] == '$' else None<EXCEPTION MATCH>ValueError
  297.             var = ''
  298.             index = index + 1
  299.             c = path[index:index + 1]
  300.             while c != '' and c in varchars:
  301.                 var = var + c
  302.                 index = index + 1
  303.                 c = path[index:index + 1]
  304.             if var in os.environ:
  305.                 res = res + os.environ[var]
  306.             
  307.             if c != '':
  308.                 res = res + c
  309.             
  310.         else:
  311.             res = res + c
  312.         index = index + 1
  313.     return res
  314.  
  315.  
  316. def normpath(path):
  317.     path = path.replace('/', '\\')
  318.     (prefix, path) = splitdrive(path)
  319.     if prefix == '':
  320.         while path[:1] == '\\':
  321.             prefix = prefix + '\\'
  322.             path = path[1:]
  323.     elif path.startswith('\\'):
  324.         prefix = prefix + '\\'
  325.         path = path.lstrip('\\')
  326.     
  327.     comps = path.split('\\')
  328.     i = 0
  329.     while i < len(comps):
  330.         None if comps[i] in ('.', '') else prefix.endswith('\\')
  331.         i += 1
  332.     if not prefix and not comps:
  333.         comps.append('.')
  334.     
  335.     return prefix + '\\'.join(comps)
  336.  
  337.  
  338. try:
  339.     from nt import _getfullpathname
  340. except ImportError:
  341.     
  342.     def abspath(path):
  343.         if not isabs(path):
  344.             path = join(os.getcwd(), path)
  345.         
  346.         return normpath(path)
  347.  
  348.  
  349.  
  350. def abspath(path):
  351.     if path:
  352.         
  353.         try:
  354.             path = _getfullpathname(path)
  355.         except WindowsError:
  356.             pass
  357.         except:
  358.             None<EXCEPTION MATCH>WindowsError
  359.         
  360.  
  361.     None<EXCEPTION MATCH>WindowsError
  362.     path = os.getcwd()
  363.     return normpath(path)
  364.  
  365. realpath = abspath
  366. if hasattr(sys, 'getwindowsversion'):
  367.     pass
  368. supports_unicode_filenames = sys.getwindowsversion()[3] >= 2
  369.